<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head id="Head"><title>
	dwr3实现消息精确推送详细步骤  - 少年阿宾 - BlogJava
</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta id="metaKeywords" name="keywords" content="dwr3实现消息精确推送详细步骤 " /><link type="text/css" rel="stylesheet" href="/css/common.css" /><link id="MainCss" type="text/css" rel="stylesheet" href="http://www.blogjava.net/Skins/BlackSun/style.css" /><link id="RSSLink" title="RSS" type="application/rss+xml" rel="alternate" href="http://www.blogjava.net/stevenjohn/rss.aspx" /></head>
<body>
    <form name="Form1" method="post" action="382447.html" onsubmit="javascript:return WebForm_OnSubmit();" id="Form1">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="
__VIEWSTATE" value="" />
</div>

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['Form1'];
if (!theForm) {
    theForm = document.Form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>


<script src="/WebResource.axd?d=hCqqcDq62xC48aLO1-oizzph91mftTcpBQYAMmX9y1_MEKckib0uai68YudFFqahbIRj8ZaZB19FpMr30&amp;t=634604713351482412" type="text/javascript"></script>

<script language=JavaScript>
									function ctlent(evt,id)
											{
												if(evt.ctrlKey && evt.keyCode == 13)
												{	
													try
													{
														TempSave(id);
													}
													catch(ex)
													{
													}
													finally
													{
													    __doPostBack('AjaxHolder$PostComment$btnSubmit','')
													}
												}
		
												}</script>
												<script language=JavaScript>function SetReplyAuhor(author){document.getElementById('AjaxHolder_PostComment_tbComment').value+="@"+author+"\n";document.getElementById('AjaxHolder_PostComment_tbComment').focus();return false}</script>
<script src="/ScriptResource.axd?d=TB76SHHPXs0c-M9_tGhAxuTARlsiSpe5Dn70CMDyMu0Be8A_MPH2Z7oqJoDwyxmBxB28VcgK9C-XqFdMNI_DuigegyGH79krj7asDjvAKLqzs7DlCIm2xb4oSA4lM05RrYsRw4Ulp-jfriIG0&amp;t=634604713351482412" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=-BecoVNwDVCZ4TW3gB_ZzPWfgjCQ_C64O4hNc3pweA4UGq0B-lWFnUMMAtqURN0AZF_f7fxk9s5U1gsq0foUhwHdXezBbn_OgCN5EL300MOu7Jb-c7WU_a2OCK01&amp;t=634979389729873750" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=4npu1eCN6HUVuTPPO5YDuuBNC2hrBvTsGEVYQhhAo9CX_hfoT2Mz1UGnoo5C32pPXZvBizBLMnY0_szRgrGRkyv7-BsG0CvEejE8Vl3Xt8nd-D_58kXSDmaBFOFFj7w3EMKivQ2&amp;t=634979389729873750" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
//]]>
</script>

        
<div id="top">
	
<div>
	<table class="HeaderTitles">
		<tr>
			<td>
				<h1 class="HeaderTitle"><a id="Header1_HeaderTitle" class="HeaderMainTitle" href="http://www.blogjava.net/stevenjohn/">少年阿宾</a></h1>
				<p id="tagline">那些青春的岁月</p>
			</td>
		</tr>
	</table>
</div>
<div>
	<table id="HeaderBar" class="HeaderBar">
		<tr>
			<td class="HeaderBarTab" nowrap>
				
&nbsp;
<a id="Header1_MyLinks1_HomeLink" href="http://www.blogjava.net/">BlogJava</a>&nbsp;::
<a id="Header1_MyLinks1_MyHomeLink" href="http://www.blogjava.net/stevenjohn/">首页</a>&nbsp;::
<a id="Header1_MyLinks1_ContactLink" accesskey="9" href="http://www.blogjava.net/stevenjohn/contact.aspx?id=1">联系</a>&nbsp;::
<a id="Header1_MyLinks1_Syndication" href="http://www.blogjava.net/stevenjohn/rss">聚合</a>
<a id="Header1_MyLinks1_XMLLink" class="XMLLink" href="http://www.blogjava.net/stevenjohn/rss"><img src="http://www.blogjava.net/images/xml.gif" style="border-width:0px;" /></a>&nbsp;::
<a id="Header1_MyLinks1_Admin" href="http://www.blogjava.net/stevenjohn/admin/EditPosts.aspx">管理</a>

			</td>
			
			<td class="HeaderBarTabBack" nowrap width="100%">
				

	<table class="BlogStatsBar">
		<tr>
			<td width="100%">
			</td>
			<td class="BlogStatsBar" nowrap>
				&nbsp;
				328 
				Posts&nbsp;::
				0 Stories
				::
				9 Comments
				::
				0 Trackbacks
			</td>
		</tr>
	</table>

			</td>
		</tr>
	</table>
</div>

</div>
<table id="maintable">
	<tr><td id="leftmenu" style="display:none">
	
		
		
<h3>常用链接</h3>
<ul>
		<li><a id="SingleColumn1_ctl00_repeaterLinks_ctl01_lnkLinkItem" href="http://www.blogjava.net/stevenjohn/MyPosts.html">我的随笔</a></li>
	
		<li><a id="SingleColumn1_ctl00_repeaterLinks_ctl02_lnkLinkItem" href="http://www.blogjava.net/stevenjohn/MyComments.html">我的评论</a></li>
	
		<li><a id="SingleColumn1_ctl00_repeaterLinks_ctl03_lnkLinkItem" href="http://www.blogjava.net/stevenjohn/OtherPosts.html">我的参与</a></li>
	
		<li><a id="SingleColumn1_ctl00_repeaterLinks_ctl04_lnkLinkItem" href="http://www.blogjava.net/stevenjohn/RecentComments.html">最新评论</a></li>
	</ul>
<H3>留言簿<span style="font-size:11px;font-weight:normal;">(4)</span></H3>
<ul>
	<li>
		<a id="SingleColumn1_ctl01_lnkMessages" href="http://www.blogjava.net/stevenjohn/Contact.aspx?id=1">给我留言</a>
	<li>
		<a id="SingleColumn1_ctl01_lnkPublicMsgView" href="http://www.blogjava.net/stevenjohn/default.aspx?opt=msg">查看公开留言</a>
	<li>
		<a id="SingleColumn1_ctl01_lnkPrivateMsgView" href="http://www.blogjava.net/stevenjohn/admin/MyMessages.aspx">查看私人留言</a>
	</li>
</ul>

<H3>我参与的团队</H3>
<div class="RecentComment">
	
</div>

<div class="mainMenuBackground">

		<h3>随笔分类</h3>
		
				<ul>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl01_Link" href="http://www.blogjava.net/stevenjohn/category/52113.html">ActiveMQ(5)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl01_RssLink" title="Subscribe to ActiveMQ(5)" href="http://www.blogjava.net/stevenjohn/category/52113.html/rss"><img title="Subscribe to ActiveMQ(5)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl02_Link" href="http://www.blogjava.net/stevenjohn/category/52829.html">Apache Commons(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl02_RssLink" title="Subscribe to Apache Commons(2)" href="http://www.blogjava.net/stevenjohn/category/52829.html/rss"><img title="Subscribe to Apache Commons(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl03_Link" href="http://www.blogjava.net/stevenjohn/category/53248.html">AXIS2(5)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl03_RssLink" title="Subscribe to AXIS2(5)" href="http://www.blogjava.net/stevenjohn/category/53248.html/rss"><img title="Subscribe to AXIS2(5)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl04_Link" href="http://www.blogjava.net/stevenjohn/category/51693.html">cache(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl04_RssLink" title="Subscribe to cache(1)" href="http://www.blogjava.net/stevenjohn/category/51693.html/rss"><img title="Subscribe to cache(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl05_Link" href="http://www.blogjava.net/stevenjohn/category/52438.html">cxf(3)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl05_RssLink" title="Subscribe to cxf(3)" href="http://www.blogjava.net/stevenjohn/category/52438.html/rss"><img title="Subscribe to cxf(3)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl06_Link" href="http://www.blogjava.net/stevenjohn/category/51105.html">Database(6)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl06_RssLink" title="Subscribe to Database(6)" href="http://www.blogjava.net/stevenjohn/category/51105.html/rss"><img title="Subscribe to Database(6)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl07_Link" href="http://www.blogjava.net/stevenjohn/category/52548.html">DatabaseIndex(4)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl07_RssLink" title="Subscribe to DatabaseIndex(4)" href="http://www.blogjava.net/stevenjohn/category/52548.html/rss"><img title="Subscribe to DatabaseIndex(4)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl08_Link" href="http://www.blogjava.net/stevenjohn/category/52404.html">dom4j(4)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl08_RssLink" title="Subscribe to dom4j(4)" href="http://www.blogjava.net/stevenjohn/category/52404.html/rss"><img title="Subscribe to dom4j(4)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl09_Link" href="http://www.blogjava.net/stevenjohn/category/52961.html">easyMock(3)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl09_RssLink" title="Subscribe to easyMock(3)" href="http://www.blogjava.net/stevenjohn/category/52961.html/rss"><img title="Subscribe to easyMock(3)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl10_Link" href="http://www.blogjava.net/stevenjohn/category/52932.html">eclipse(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl10_RssLink" title="Subscribe to eclipse(2)" href="http://www.blogjava.net/stevenjohn/category/52932.html/rss"><img title="Subscribe to eclipse(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl11_Link" href="http://www.blogjava.net/stevenjohn/category/52924.html">hadoop(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl11_RssLink" title="Subscribe to hadoop(2)" href="http://www.blogjava.net/stevenjohn/category/52924.html/rss"><img title="Subscribe to hadoop(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl12_Link" href="http://www.blogjava.net/stevenjohn/category/52531.html">hession(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl12_RssLink" title="Subscribe to hession(1)" href="http://www.blogjava.net/stevenjohn/category/52531.html/rss"><img title="Subscribe to hession(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl13_Link" href="http://www.blogjava.net/stevenjohn/category/51097.html">hibernate(13)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl13_RssLink" title="Subscribe to hibernate(13)" href="http://www.blogjava.net/stevenjohn/category/51097.html/rss"><img title="Subscribe to hibernate(13)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl14_Link" href="http://www.blogjava.net/stevenjohn/category/53428.html">HighConcurrency(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl14_RssLink" title="Subscribe to HighConcurrency(2)" href="http://www.blogjava.net/stevenjohn/category/53428.html/rss"><img title="Subscribe to HighConcurrency(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl15_Link" href="http://www.blogjava.net/stevenjohn/category/51822.html">httpClient(22)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl15_RssLink" title="Subscribe to httpClient(22)" href="http://www.blogjava.net/stevenjohn/category/51822.html/rss"><img title="Subscribe to httpClient(22)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl16_Link" href="http://www.blogjava.net/stevenjohn/category/52693.html">HTTPS(8)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl16_RssLink" title="Subscribe to HTTPS(8)" href="http://www.blogjava.net/stevenjohn/category/52693.html/rss"><img title="Subscribe to HTTPS(8)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl17_Link" href="http://www.blogjava.net/stevenjohn/category/53198.html">HttpUrlConnection(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl17_RssLink" title="Subscribe to HttpUrlConnection(1)" href="http://www.blogjava.net/stevenjohn/category/53198.html/rss"><img title="Subscribe to HttpUrlConnection(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl18_Link" href="http://www.blogjava.net/stevenjohn/category/51099.html">ice</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl18_RssLink" title="Subscribe to ice" href="http://www.blogjava.net/stevenjohn/category/51099.html/rss"><img title="Subscribe to ice" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl19_Link" href="http://www.blogjava.net/stevenjohn/category/51871.html">Java Face(3)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl19_RssLink" title="Subscribe to Java Face(3)" href="http://www.blogjava.net/stevenjohn/category/51871.html/rss"><img title="Subscribe to Java Face(3)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl20_Link" href="http://www.blogjava.net/stevenjohn/category/52364.html">Java NIO</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl20_RssLink" title="Subscribe to Java NIO" href="http://www.blogjava.net/stevenjohn/category/52364.html/rss"><img title="Subscribe to Java NIO" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl21_Link" href="http://www.blogjava.net/stevenjohn/category/51107.html">Java 文件操作(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl21_RssLink" title="Subscribe to Java 文件操作(1)" href="http://www.blogjava.net/stevenjohn/category/51107.html/rss"><img title="Subscribe to Java 文件操作(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl22_Link" href="http://www.blogjava.net/stevenjohn/category/51240.html">JavaBasic(8)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl22_RssLink" title="Subscribe to JavaBasic(8)" href="http://www.blogjava.net/stevenjohn/category/51240.html/rss"><img title="Subscribe to JavaBasic(8)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl23_Link" href="http://www.blogjava.net/stevenjohn/category/52529.html">JavaEnum(3)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl23_RssLink" title="Subscribe to JavaEnum(3)" href="http://www.blogjava.net/stevenjohn/category/52529.html/rss"><img title="Subscribe to JavaEnum(3)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl24_Link" href="http://www.blogjava.net/stevenjohn/category/51239.html">JavaMail(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl24_RssLink" title="Subscribe to JavaMail(1)" href="http://www.blogjava.net/stevenjohn/category/51239.html/rss"><img title="Subscribe to JavaMail(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl25_Link" href="http://www.blogjava.net/stevenjohn/category/51101.html">JavaMultithread(24)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl25_RssLink" title="Subscribe to JavaMultithread(24)" href="http://www.blogjava.net/stevenjohn/category/51101.html/rss"><img title="Subscribe to JavaMultithread(24)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl26_Link" href="http://www.blogjava.net/stevenjohn/category/52110.html">Javascript(10)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl26_RssLink" title="Subscribe to Javascript(10)" href="http://www.blogjava.net/stevenjohn/category/52110.html/rss"><img title="Subscribe to Javascript(10)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl27_Link" href="http://www.blogjava.net/stevenjohn/category/51106.html">javaWork(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl27_RssLink" title="Subscribe to javaWork(2)" href="http://www.blogjava.net/stevenjohn/category/51106.html/rss"><img title="Subscribe to javaWork(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl28_Link" href="http://www.blogjava.net/stevenjohn/category/51395.html">Java内部类(4)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl28_RssLink" title="Subscribe to Java内部类(4)" href="http://www.blogjava.net/stevenjohn/category/51395.html/rss"><img title="Subscribe to Java内部类(4)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl29_Link" href="http://www.blogjava.net/stevenjohn/category/52559.html">Java动态代理(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl29_RssLink" title="Subscribe to Java动态代理(1)" href="http://www.blogjava.net/stevenjohn/category/52559.html/rss"><img title="Subscribe to Java动态代理(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl30_Link" href="http://www.blogjava.net/stevenjohn/category/51394.html">Java反射机制(4)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl30_RssLink" title="Subscribe to Java反射机制(4)" href="http://www.blogjava.net/stevenjohn/category/51394.html/rss"><img title="Subscribe to Java反射机制(4)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl31_Link" href="http://www.blogjava.net/stevenjohn/category/51102.html">java基础知识(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl31_RssLink" title="Subscribe to java基础知识(2)" href="http://www.blogjava.net/stevenjohn/category/51102.html/rss"><img title="Subscribe to java基础知识(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl32_Link" href="http://www.blogjava.net/stevenjohn/category/51397.html">Java常用算法(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl32_RssLink" title="Subscribe to Java常用算法(1)" href="http://www.blogjava.net/stevenjohn/category/51397.html/rss"><img title="Subscribe to Java常用算法(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl33_Link" href="http://www.blogjava.net/stevenjohn/category/51100.html">java集合类(8)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl33_RssLink" title="Subscribe to java集合类(8)" href="http://www.blogjava.net/stevenjohn/category/51100.html/rss"><img title="Subscribe to java集合类(8)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl34_Link" href="http://www.blogjava.net/stevenjohn/category/52542.html">JDBCP(4)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl34_RssLink" title="Subscribe to JDBCP(4)" href="http://www.blogjava.net/stevenjohn/category/52542.html/rss"><img title="Subscribe to JDBCP(4)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl35_Link" href="http://www.blogjava.net/stevenjohn/category/52209.html">JDOM(3)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl35_RssLink" title="Subscribe to JDOM(3)" href="http://www.blogjava.net/stevenjohn/category/52209.html/rss"><img title="Subscribe to JDOM(3)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl36_Link" href="http://www.blogjava.net/stevenjohn/category/52676.html">Jetty(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl36_RssLink" title="Subscribe to Jetty(1)" href="http://www.blogjava.net/stevenjohn/category/52676.html/rss"><img title="Subscribe to Jetty(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl37_Link" href="http://www.blogjava.net/stevenjohn/category/53242.html">JMOCK(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl37_RssLink" title="Subscribe to JMOCK(1)" href="http://www.blogjava.net/stevenjohn/category/53242.html/rss"><img title="Subscribe to JMOCK(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl38_Link" href="http://www.blogjava.net/stevenjohn/category/52315.html">JSON(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl38_RssLink" title="Subscribe to JSON(2)" href="http://www.blogjava.net/stevenjohn/category/52315.html/rss"><img title="Subscribe to JSON(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl39_Link" href="http://www.blogjava.net/stevenjohn/category/52896.html">JSR</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl39_RssLink" title="Subscribe to JSR" href="http://www.blogjava.net/stevenjohn/category/52896.html/rss"><img title="Subscribe to JSR" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl40_Link" href="http://www.blogjava.net/stevenjohn/category/52939.html">Junit(3)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl40_RssLink" title="Subscribe to Junit(3)" href="http://www.blogjava.net/stevenjohn/category/52939.html/rss"><img title="Subscribe to Junit(3)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl41_Link" href="http://www.blogjava.net/stevenjohn/category/52895.html">JVM(4)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl41_RssLink" title="Subscribe to JVM(4)" href="http://www.blogjava.net/stevenjohn/category/52895.html/rss"><img title="Subscribe to JVM(4)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl42_Link" href="http://www.blogjava.net/stevenjohn/category/52994.html">linux(9)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl42_RssLink" title="Subscribe to linux(9)" href="http://www.blogjava.net/stevenjohn/category/52994.html/rss"><img title="Subscribe to linux(9)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl43_Link" href="http://www.blogjava.net/stevenjohn/category/52535.html">memcache(8)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl43_RssLink" title="Subscribe to memcache(8)" href="http://www.blogjava.net/stevenjohn/category/52535.html/rss"><img title="Subscribe to memcache(8)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl44_Link" href="http://www.blogjava.net/stevenjohn/category/52027.html">Mybatis(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl44_RssLink" title="Subscribe to Mybatis(2)" href="http://www.blogjava.net/stevenjohn/category/52027.html/rss"><img title="Subscribe to Mybatis(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl45_Link" href="http://www.blogjava.net/stevenjohn/category/51104.html">mysql(10)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl45_RssLink" title="Subscribe to mysql(10)" href="http://www.blogjava.net/stevenjohn/category/51104.html/rss"><img title="Subscribe to mysql(10)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl46_Link" href="http://www.blogjava.net/stevenjohn/category/53185.html">nginx(3)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl46_RssLink" title="Subscribe to nginx(3)" href="http://www.blogjava.net/stevenjohn/category/53185.html/rss"><img title="Subscribe to nginx(3)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl47_Link" href="http://www.blogjava.net/stevenjohn/category/51103.html">oracle(35)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl47_RssLink" title="Subscribe to oracle(35)" href="http://www.blogjava.net/stevenjohn/category/51103.html/rss"><img title="Subscribe to oracle(35)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl48_Link" href="http://www.blogjava.net/stevenjohn/category/52416.html">quartz(4)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl48_RssLink" title="Subscribe to quartz(4)" href="http://www.blogjava.net/stevenjohn/category/52416.html/rss"><img title="Subscribe to quartz(4)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl49_Link" href="http://www.blogjava.net/stevenjohn/category/53002.html">Redis(3)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl49_RssLink" title="Subscribe to Redis(3)" href="http://www.blogjava.net/stevenjohn/category/53002.html/rss"><img title="Subscribe to Redis(3)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl50_Link" href="http://www.blogjava.net/stevenjohn/category/51969.html">servlet(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl50_RssLink" title="Subscribe to servlet(1)" href="http://www.blogjava.net/stevenjohn/category/51969.html/rss"><img title="Subscribe to servlet(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl51_Link" href="http://www.blogjava.net/stevenjohn/category/51840.html">SIPHMPASTERISK(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl51_RssLink" title="Subscribe to SIPHMPASTERISK(2)" href="http://www.blogjava.net/stevenjohn/category/51840.html/rss"><img title="Subscribe to SIPHMPASTERISK(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl52_Link" href="http://www.blogjava.net/stevenjohn/category/53180.html">Socket(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl52_RssLink" title="Subscribe to Socket(2)" href="http://www.blogjava.net/stevenjohn/category/53180.html/rss"><img title="Subscribe to Socket(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl53_Link" href="http://www.blogjava.net/stevenjohn/category/52035.html">spring(6)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl53_RssLink" title="Subscribe to spring(6)" href="http://www.blogjava.net/stevenjohn/category/52035.html/rss"><img title="Subscribe to spring(6)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl54_Link" href="http://www.blogjava.net/stevenjohn/category/51095.html">struts2(3)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl54_RssLink" title="Subscribe to struts2(3)" href="http://www.blogjava.net/stevenjohn/category/51095.html/rss"><img title="Subscribe to struts2(3)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl55_Link" href="http://www.blogjava.net/stevenjohn/category/53444.html">TCP/IP(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl55_RssLink" title="Subscribe to TCP/IP(1)" href="http://www.blogjava.net/stevenjohn/category/53444.html/rss"><img title="Subscribe to TCP/IP(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl56_Link" href="http://www.blogjava.net/stevenjohn/category/53005.html">tomcat(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl56_RssLink" title="Subscribe to tomcat(1)" href="http://www.blogjava.net/stevenjohn/category/53005.html/rss"><img title="Subscribe to tomcat(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl57_Link" href="http://www.blogjava.net/stevenjohn/category/51098.html">Webservice(1)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl57_RssLink" title="Subscribe to Webservice(1)" href="http://www.blogjava.net/stevenjohn/category/51098.html/rss"><img title="Subscribe to Webservice(1)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl58_Link" href="http://www.blogjava.net/stevenjohn/category/51167.html">wireshark(3)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl58_RssLink" title="Subscribe to wireshark(3)" href="http://www.blogjava.net/stevenjohn/category/51167.html/rss"><img title="Subscribe to wireshark(3)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl59_Link" href="http://www.blogjava.net/stevenjohn/category/51867.html">workflow(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl59_RssLink" title="Subscribe to workflow(2)" href="http://www.blogjava.net/stevenjohn/category/51867.html/rss"><img title="Subscribe to workflow(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl60_Link" href="http://www.blogjava.net/stevenjohn/category/52227.html">正则表达式(4)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl60_RssLink" title="Subscribe to 正则表达式(4)" href="http://www.blogjava.net/stevenjohn/category/52227.html/rss"><img title="Subscribe to 正则表达式(4)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl61_Link" href="http://www.blogjava.net/stevenjohn/category/51131.html">设计模式(2)</a>
					<span style="width:10px">
						<a id="SingleColumn1_Categories_CatList_ctl00_LinkList_ctl61_RssLink" title="Subscribe to 设计模式(2)" href="http://www.blogjava.net/stevenjohn/category/51131.html/rss"><img title="Subscribe to 设计模式(2)" src="/Skins/BlackSun/Images/xmlsmall.gif" alt="rss" style="border-width:0px;" /></a>
					</span> 
				</li>
			
				</ul>
			
	
		<h3>随笔档案</h3>
		
				<ul>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl01_Link" href="http://www.blogjava.net/stevenjohn/archive/2013/04.html">2013年4月 (5)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl02_Link" href="http://www.blogjava.net/stevenjohn/archive/2013/03.html">2013年3月 (9)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl03_Link" href="http://www.blogjava.net/stevenjohn/archive/2013/02.html">2013年2月 (1)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl04_Link" href="http://www.blogjava.net/stevenjohn/archive/2013/01.html">2013年1月 (26)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl05_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/12.html">2012年12月 (19)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl06_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/11.html">2012年11月 (33)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl07_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/10.html">2012年10月 (19)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl08_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/09.html">2012年9月 (51)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl09_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/08.html">2012年8月 (46)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl10_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/07.html">2012年7月 (20)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl11_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/06.html">2012年6月 (15)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl12_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/05.html">2012年5月 (13)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl13_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/04.html">2012年4月 (5)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl14_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/03.html">2012年3月 (27)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl15_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/02.html">2012年2月 (4)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl16_Link" href="http://www.blogjava.net/stevenjohn/archive/2012/01.html">2012年1月 (2)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl17_Link" href="http://www.blogjava.net/stevenjohn/archive/2011/12.html">2011年12月 (24)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl18_Link" href="http://www.blogjava.net/stevenjohn/archive/2011/11.html">2011年11月 (1)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl19_Link" href="http://www.blogjava.net/stevenjohn/archive/2011/10.html">2011年10月 (6)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				<li class="menuItemList">
					<a id="SingleColumn1_Categories_CatList_ctl01_LinkList_ctl20_Link" href="http://www.blogjava.net/stevenjohn/archive/2011/09.html">2011年9月 (1)</a>
					<span style="width:10px">
						
					</span> 
				</li>
			
				</ul>
			
	
</div>

<script language="JavaScript">
function SearchGoogle(key,evt,site)
		{
			if(evt.keyCode==13 || evt.keyCode==0 || evt.type =='click')
			{
				key.focus();
				var keystr = encodeURIComponent(key.value);
				url = "http://www.google.com/search?q=";
				url = url+keystr;
				url += "&ie=UTF-8&oe=GB2312&hl=zh-CN&domains="+site+"&sitesearch="+site;
				window.location=url;
				return false;
			}
		}
</script>
<H3>搜索</H3>
<ul>
	<li>
		<li><input style="WIDTH: 130px" type="text" name="q" id="q" onkeydown="return SearchGoogle(document.getElementById('q'),event,'www.blogjava.net/stevenjohn')">&nbsp;<input onclick="SearchGoogle(document.getElementById('q'),event,'www.blogjava.net/stevenjohn')" type="button" value="搜索" name="sa">
	</li>
</ul>

<h3>最新评论
	<a id="SingleColumn1__3b58808_RSSHyperlink1" href="http://www.blogjava.net/stevenjohn/CommentsRSS.aspx"><img src="/images/xml.gif" style="border-width:0px;" /></a></h3>
<div class="RecentComment">
	
			<ul>
		
			<li style="word-break:break-all">
				<a id="SingleColumn1__3b58808_CommentList_ctl01_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/04/06/366749.html#397440">1. re:  JS：表单输出自动显示在表格里</a>
			</li>
			<li style="word-break:break-all">
				等等
			</li>
			<li style="text-align:right;margin-right:4px">
				--答复</li>
		
			<li style="word-break:break-all">
				<a id="SingleColumn1__3b58808_CommentList_ctl02_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/03/21/394144.html#396779">2. re: SpringMVC与fastjson整合并同时解决中文乱码问题[未登录]</a>
			</li>
			<li style="word-break:break-all">
				评论内容较长,点击标题查看
			</li>
			<li style="text-align:right;margin-right:4px">
				--test</li>
		
			<li style="word-break:break-all">
				<a id="SingleColumn1__3b58808_CommentList_ctl03_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/03/18/388389.html#396582">3. re: Java Https单向，双向验证</a>
			</li>
			<li style="word-break:break-all">
				评论内容较长,点击标题查看
			</li>
			<li style="text-align:right;margin-right:4px">
				--suipy</li>
		
			<li style="word-break:break-all">
				<a id="SingleColumn1__3b58808_CommentList_ctl04_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/03/04/391153.html#396025">4. re: spring memcache </a>
			</li>
			<li style="word-break:break-all">
				<a href="http://www.easy518.com/" target="_new" rel="nofollow">http://www.easy518.com/</a>
			</li>
			<li style="text-align:right;margin-right:4px">
				--http://www.easy518.com/</li>
		
			<li style="word-break:break-all">
				<a id="SingleColumn1__3b58808_CommentList_ctl05_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/01/16/379878.html#394331">5. re: Osworkflow2.8  入门级例子</a>
			</li>
			<li style="word-break:break-all">
				@Taiwaner<br>是滴，osworkflow貌似不提供更新了，都是使用以前的老东西，现在好多人都在用Jbpm。
			</li>
			<li style="text-align:right;margin-right:4px">
				--abin</li>
		
			</ul>
		
</div>

<h3>阅读排行榜</h3>
<div class="RecentComment">
	
			<ul style="word-break:break-all">
		
			<li>
				<a id="SingleColumn1__91cf4_TopList_ctl01_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/09/27/388647.html">1. HttpsUrlConnection   https双向验证(1492)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__91cf4_TopList_ctl02_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2011/09/25/359482.html">2. DB2 常用sql语句(1097)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__91cf4_TopList_ctl03_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/11/14/391344.html">3. spring redis整合(一)(968)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__91cf4_TopList_ctl04_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/10/25/390219.html">4. Hibernate hql 查询指定字段并获取结果集(945)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__91cf4_TopList_ctl05_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/08/12/385324.html">5. oracle function用法(906)</a>
			</li>
		
			</ul>
		
</div>

<h3>评论排行榜</h3>
<div class="RecentComment">
	
			<ul style="word-break:break-all">
		
			<li>
				<a id="SingleColumn1__3fb9bbd_TopList_ctl01_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/06/03/379878.html">1. Osworkflow2.8  入门级例子(2)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__3fb9bbd_TopList_ctl02_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2011/09/25/359482.html">2. DB2 常用sql语句(2)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__3fb9bbd_TopList_ctl03_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2011/12/19/366749.html">3.  JS：表单输出自动显示在表格里(1)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__3fb9bbd_TopList_ctl04_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/07/07/382447.html">4. dwr3实现消息精确推送详细步骤 (1)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__3fb9bbd_TopList_ctl05_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/01/12/394144.html">5. SpringMVC与fastjson整合并同时解决中文乱码问题(1)</a>
			</li>
		
			</ul>
		
</div>

<h3>60天内阅读排行</h3>
<div class="RecentComment">
	
			<ul>
		
			<li>
				<a id="SingleColumn1__2c0eb7e_TopList_ctl01_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/03/05/396068.html">1. HttpCLient4 Post请求(168)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__2c0eb7e_TopList_ctl02_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/03/21/396808.html">2. java处理高并发高负载类网站的优化方法(66)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__2c0eb7e_TopList_ctl03_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/03/21/396809.html">3. java 高并发 基础知识 (57)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__2c0eb7e_TopList_ctl04_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/02/11/395294.html">4. Linux系统中查看日志的常用命令 (56)</a>
			</li>
		
			<li>
				<a id="SingleColumn1__2c0eb7e_TopList_ctl05_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2013/03/20/396760.html">5. HttpClient访问单向https(不使用密钥库和信任库)(45)</a>
			</li>
		
			</ul>
		
</div>
	
</td><td id="main">
	
					
<div class="post">
			<div class="postTitle">
				<a id="viewpost1_TitleUrl" href="http://www.blogjava.net/stevenjohn/archive/2012/07/07/382447.html">dwr3实现消息精确推送详细步骤 </a>
			</div>
	
	<div class="postText">
		<span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp; </span>这几天做项目，需要一个消息提醒功能，决定用<span style="font-family:Times New Roman">dwr</span>实现，在<span style="font-family:Times New Roman">dwr</span>官网和网上找了很多资料，也没实现精准推送，大多数的例子具体步骤写的不清楚，不怎么了解<span style="font-family:Times New Roman">dwr</span>的人看了也未必能看懂，反正我是没看懂，那时就决定，若自己实现了，一定将具体步骤写下来，希望能给那些和我一样的人一些帮助，若有不明白的，可以给小弟留言。我只写步骤，不写原理，下面开始。 <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp; </span>第一、在项目中引入<span style="font-family:Times New Roman">dwr.jar</span>，然后在<span style="font-family:Times New Roman">web.xml</span>中进行配置，配置如下：</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.directwebremoting.servlet.DwrServlet</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/servlet-class&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;crossDomainSessionSecurity&lt;/param-name&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;false&lt;/param-value&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;param-name&gt;allowScriptTagRemoting&lt;/param-name&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;param-value&gt;true&lt;/param-value&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;param-name&gt;classes&lt;/param-name&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;param-value&gt;java.lang.Object&lt;/param-value&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;activeReverseAjaxEnabled&lt;/param-name&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;true&lt;/param-value&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;param-name&gt;initApplicationScopeCreatorsAtStartup&lt;/param-name&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;param-value&gt;true&lt;/param-value&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;maxWaitAfterWrite&lt;/param-name&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;3000&lt;/param-value&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;debug&lt;/param-name&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;true&lt;/param-value&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;logLevel&lt;/param-name&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;WARN&lt;/param-value&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp; &lt;/servlet&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp; </span>第二：在<span style="font-family:Times New Roman">web.xml</span>的同级目录下新建<span style="font-family:Times New Roman">dwr.xml</span>文件，内容如下</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp; &lt;!DOCTYPE dwr PUBLIC</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://getahead.org/dwr/dwr30.dtd"&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp; &lt;dwr&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;alow&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;create creator="new" javascript="MessagePush"&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;param name="class" value="com.huatech.messageremind.service.MessagePush"/&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/create&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/alow&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dwr&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp; </span>这个是<span style="font-family:Times New Roman">dwr</span>的基本配置，<span style="font-family:Times New Roman">MessagePush</span>在页面的<span style="font-family:Times New Roman">javascript</span>中使用，<span style="font-family:Times New Roman">com.huatech.messageremind.service.MessagePush</span>实现了想要调用的方法，<span style="font-family:Times New Roman">MessagePush</span>我觉得就相当于<span style="font-family:Times New Roman">java</span>类中的一个映射，在<span style="font-family:Times New Roman">javascript</span>中使用<span style="font-family:Times New Roman">MessagePush.java</span>类中实现的方法，即可在<span style="font-family:Times New Roman">dwr</span>中调用。</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp; </span>第三，要想使用<span style="font-family:Times New Roman">dwr</span>，还要在你想要推送的页面中引入<span style="font-family:Times New Roman">script</span>，</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type="text/javascript" src="&lt;%=basepath%&gt;dwr/engine.js"&gt;&lt;/script&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;script type="text/javascript" src="&lt;%=basepath%&gt;dwr/util.js"&gt;&lt;/script&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;script type="text/javascript" src="&lt;%=basepath%&gt;dwr/interface/MessagePush.js"&gt;&lt;/script&gt;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>可以看见，也引入了<span style="font-family:Times New Roman">dwr.xml</span>中配置的<span style="font-family:Times New Roman">javascript</span>，<span style="font-family:Times New Roman">engine.js</span>和<span style="font-family:Times New Roman">util.js</span>是必须引入的。</p> <p>&nbsp;以上三点都是基本配置，没什么好说的，想使用<span style="font-family:Times New Roman">dwr</span>，就得这么做。</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp; </span>第四，实现消息的精准推送</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>消息推送简单，但是想实现精准推送就需要做一些别的操作了</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 </span>在任何一个用户登录的时候，都需要将其<span style="font-family:Times New Roman">userId</span>或者其他唯一性标识放入<span style="font-family:Times New Roman">session</span>中，我放的是<span style="font-family:Times New Roman">userId</span>，</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>这里就以<span style="font-family:Times New Roman"> userId</span>为唯一性标识。</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 </span>在载入想推送的页面时，需要<span style="font-family:Times New Roman">onload</span>一个我在<span style="font-family:Times New Roman">MessagePush</span>类中实现的方法，当然了，需要使用<span style="font-family:Times New Roman">dwr</span>调用</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; js</span>的调用方法如下：</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function onPageLoad(){</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var userId = '${userinfo.humanid}';</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessagePush.onPageLoad(userId);</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &lt;body  onload="dwr.engine.setActiveReverseAjax(true);dwr.engine.setNotifyServerOnPageUnload(true);onPageLoad();&gt; </span>在<span style="font-family:Times New Roman">onload</span>中的三个函数都是必须的，其中<span style="font-family:Times New Roman">dwr.engine.setActiveReverseAjax(true);dwr.engine.setNotifyServerOnPageUnload(true);</span>是<span style="font-family:Times New Roman">dwr</span>中的函数。</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessagePush</span>类中实现的方法如下：</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void onPageLoad(String userId) {</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ScriptSession scriptSession = WebContextFactory.get().getScriptSession();</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scriptSession.setAttribute(userId, userId);</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DwrScriptSessionManagerUtil dwrScriptSessionManagerUtil = new DwrScriptSessionManagerUtil();</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dwrScriptSessionManagerUtil.init();</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (ServletException e) {</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>大家注意到，<span style="font-family:Times New Roman">onPageLoad</span>方法中还有一个名为<span style="font-family:Times New Roman">DwrScriptSessionManagerUtil</span>的类，该类如下实现：</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public class DwrScriptSessionManagerUtil extends DwrServlet{</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static final long serialVersionUID = -7504612622407420071L;</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void init()</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws ServletException {</span></p> <p>&nbsp;</p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Container container = ServerContextFactory.get().getContainer();</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ScriptSessionManager manager = container</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .getBean(ScriptSessionManager.class);</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ScriptSessionListener listener = new ScriptSessionListener() {</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void sessionCreated(ScriptSessionEvent ev) {</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpSession session = WebContextFactory.get().getSession();</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String userId =((User) session.getAttribute("userinfo")).getHumanid()+"";</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("a ScriptSession is created!");</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ev.getSession().setAttribute("userId", userId);</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void sessionDestroyed(ScriptSessionEvent ev) {</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("a ScriptSession is distroyed");</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; manager.addScriptSessionListener(listener);</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">}</span></p> <p><span style="font-size:16px">第四步是最最重要的，为了第四步我研究了两天多，下面开始消息推送。</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>第五、消息推送</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>在你想要推送消息的时候，调用如下方法：</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; public void sendMessageAuto(String userid,String message) {</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final String userId = userid ;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final String autoMessage = message;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Browser.withAllSessionsFiltered(new ScriptSessionFilter() {</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public boolean match(ScriptSession session) {</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (session.getAttribute("userId") == null)</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (session.getAttribute("userId")).equals(userId);</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }, new Runnable(){</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private ScriptBuffer script = new ScriptBuffer();</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void run() {</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; script.appendCall("showMessage", autoMessage);</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Collection&lt;ScriptSession&gt; sessions = Browser</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .getTargetSessions();</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (ScriptSession scriptSession : sessions) {</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scriptSession.addScript(script);</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; userid</span>即为你想推给消息的人，<span style="font-family:Times New Roman">message</span>为你想推送的消息，大家注意到这里<span style="font-family:Times New Roman">script.appendCall("showMessage", autoMessage);</span></p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>其中<span style="font-family:Times New Roman">showMessage</span>为在想推送的页面中的<span style="font-family:Times New Roman">javascript</span>方法，<span style="font-family:Times New Roman">autoMessage</span>是这个方法的参数，这样那个页面就能得到推送的内容了，至于如何展现，就看你的需要了。</p> <p>&nbsp;</p> <p><span style="font-family:Times New Roman; font-size:16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>至此，一个<span style="font-family:Times New Roman">dwr</span>消息精准推送的步骤就写完了，其实很多东西都不难，只是我们不知道该怎么用而已。</p>
	</div>
	
	<div class="postfoot">
		posted on 2012-07-07 15:10 <a href='http://www.blogjava.net/stevenjohn/'>abin</a> 阅读(526) <a href='#Post'>评论(1)</a> &nbsp;<a href="http://www.blogjava.net/stevenjohn/admin/EditPosts.aspx?postid=382447">编辑</a> &nbsp;<a href="http://www.blogjava.net/stevenjohn/AddToFavorite.aspx?id=382447">收藏</a>  所属分类: <a href='http://www.blogjava.net/stevenjohn/category/52110.html'>Javascript</a> 
	</div>
</div>
<img src ="http://www.blogjava.net/stevenjohn/aggbug/382447.html?webview=1" width = "1" height = "1" />

<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
rdf:about="http://www.blogjava.net/stevenjohn/archive/2012/07/07/382447.html"
dc:identifier="http://www.blogjava.net/stevenjohn/archive/2012/07/07/382447.html"
dc:title="dwr3实现消息精确推送详细步骤 "
trackback:ping="http://www.blogjava.net/stevenjohn/services/trackbacks/382447.aspx" />
</rdf:RDF>
-->

<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('AjaxHolder$scriptmanager1', document.getElementById('Form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tAjaxHolder$UpdatePanel1'], [], [], 90);
//]]>
</script>

<div id="AjaxHolder_UpdatePanel1">
	    
    <a name="pagedcomment"></a>
<a name = "feedback"></a>
<div id="comments">
	<h3>Feedback</h3>
		
		
				<div class="post">			
					<div class="postTitle">
						<a title="permalink: re: dwr3实现消息精确推送详细步骤 " href="/stevenjohn/archive/2012/07/07/382447.html#393358">#</a>&nbsp;<a name="393358"></a>re: dwr3实现消息精确推送详细步骤 <a name="Post"></a>
						<span>
								2012-12-22 22:56
						</span>
						<a id="AjaxHolder_Comments_CommentList_ctl00_NameLink" href="http://www.blogjava.net/feilongjian/" target="_blank">飞龙剑</a>
					</div>
					<div class="postText">
						谢谢你的教程，这个东西网上说得都不完全，找了好久终于找到一篇高质量的教程。通过你的教程我终于把消息推送提醒搞定了。&nbsp;&nbsp;<a onclick="return SetReplyAuhor(&quot;飞龙剑&quot;)" href="/stevenjohn/archive/2012/07/07/382447.html#post">回复</a>&nbsp;&nbsp;<a title="查看该作者发表过的评论" href="http://www.blogjava.net/comment?author=%e9%a3%9e%e9%be%99%e5%89%91" target="_blank">更多评论</a>
						<br>
						<a id="AjaxHolder_Comments_CommentList_ctl00_DeleteLink" href="javascript:__doPostBack('AjaxHolder$Comments$CommentList$ctl00$DeleteLink','')"></a>&nbsp;&nbsp;<a id="AjaxHolder_Comments_CommentList_ctl00_EditLink"></a>
					</div>
				</div>
				<br>
			
</div>
<style>
td { font-size: 12px }
.commentTextBox 
{ 
    font-family : Verdana; 
    font-size: 13px;
 }
</style>
<!--Beging Temp Save-->
<STYLE>.userData { BEHAVIOR: url(#default#userdata) }
	</STYLE>
<DIV class="userData" id="CommentsPersistDiv"></DIV>

<script type="text/javascript">
function pageLoad()
{
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(handleInitializeRequest);
    //Sys.WebForms.PageRequestManager.getInstance().add_endRequest(handleEndRequest);
}

function handleInitializeRequest(sender, args)
{
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    var eid = args.get_postBackElement().id;
    if (eid.indexOf("DeleteLink")>0) 
    {
       args.get_postBackElement().innerHTML = "<font color='red'>正在删除...</font>";         
    }    
    else if (eid.indexOf("btnSubmit")>0) 
    {
       document.getElementById("AjaxHolder_PostComment_ltSubmitMsg").innerHTML="正在提交...";
       document.getElementById("AjaxHolder_PostComment_btnSubmit").disabled = true;       
    }   
    else if(eid.indexOf("refreshList")>0)
    {
        document.getElementById("AjaxHolder_PostComment_refreshList").innerHTML="<font color='red'>正在刷新...</font>";
    }
   
}	

function TempSave(ElementID)
{
	try
	{
	CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value);
	CommentsPersistDiv.save("CommentXMLStore");
	}
	catch(ex)
	{
	}
	
}
function Restore(ElementID)
{
	CommentsPersistDiv.load("CommentXMLStore");
	document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent");
}	
			
			
</script>
<!--Ene TempSave-->
<div id="divRefreshComments" style="text-align:right;margin-right:10px;margin-bottom:5px;font-size:12px"><a href="/RequireRegister.aspx">新用户注册</a>&nbsp;&nbsp;<a id="AjaxHolder_PostComment_refreshList" href="javascript:__doPostBack('AjaxHolder$PostComment$refreshList','')">刷新评论列表</a>&nbsp;&nbsp;</div>
<div class="commentform">
<span id="AjaxHolder_PostComment_ltSubmitMsg" style="color:Red;"></span>
<br />
<a name="Feedback"></a>
	<TABLE cellSpacing="1" cellPadding="1" border="0">	
		<tr>
		<td id="AjaxHolder_PostComment_tdOnCommentForm" colspan="3" style="line-height:1.5">
		<a href="http://job.cnblogs.com/" target="_blank">找优秀程序员，就在博客园</a><br/>
		<!--<a href="http://zt.cnblogs.com/training/2012/" target="_blank">国家职业资格证书-Java高级程序设计员免费培训（上海）</a>-->
		<!--<div>
		技术专题：<br/>
		<a href="http://kb.cnblogs.com/zt/jquery/" title="jQuery" target="_blank">jQuery</a>&nbsp; &nbsp;<a href="http://kb.cnblogs.com/zt/android/" title="Android" target="_blank">Android</a>&nbsp; &nbsp;<a href="http://kb.cnblogs.com/zt/ipad/" title="iPad" target="_blank">iPad</a>
		</div>-->
		</td>
	
		</tr>
		<div id="AjaxHolder_PostComment_divCommnentArea">
		<TR>
			<TD colSpan="3"></TD>
		</TR>
		<TR>
			<TD width="75"></TD>
			<TD></TD>
			<TD></TD>
		</TR>
		<TR>
			<TD></TD>
			<TD colSpan="2">
			<a href="http://www.cnblogs.com" target="_blank">博客园</a>&nbsp;  <a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp; <a href="http://news.cnblogs.com" target="_blank">IT新闻</a>&nbsp; <!--<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;  <a href="http://a4.yeshj.com/rd/36007/" target="_blank">学英语</a>&nbsp;  --><a href="http://job.cnblogs.com/cate-java_programmer/" target="_blank">Java程序员招聘</a>
			</TD>
		</TR>
		<TR>
			<TD width="55">标题</TD>
			<TD><input name="AjaxHolder$PostComment$tbTitle" type="text" value="re: dwr3实现消息精确推送详细步骤 " id="AjaxHolder_PostComment_tbTitle" class="commenttb" style="width:320" /></TD>
			<TD><span id="AjaxHolder_PostComment_RequiredFieldValidator1" style="color:Red;visibility:hidden;">请输入标题</span></TD>
		</TR>
		<TR>
			<TD>姓名</TD>
			<TD><input name="AjaxHolder$PostComment$tbName" type="text" id="AjaxHolder_PostComment_tbName" class="commenttb" style="width:320" /></TD>
			<TD><span id="AjaxHolder_PostComment_RequiredFieldValidator2" style="color:Red;visibility:hidden;">请输入你的姓名</span></TD>
		</TR>
		<TR>
			<TD>主页</TD>
			<TD><input name="AjaxHolder$PostComment$tbUrl" type="text" id="AjaxHolder_PostComment_tbUrl" class="commenttb" style="width:320" /></TD>
			<TD><FONT face="宋体"></FONT></TD>
		</TR>
		<tr>
			<td align="left" colSpan="3">
				<table id="AjaxHolder_PostComment_tbCaptchaImage" class="CommentForm" cellspacing="0" cellpadding="0" border="0">
		<tr>
			<td colspan="3">
							<span id="AjaxHolder_PostComment_Requiredfieldvalidator4" style="color:Red;display:none;">请输入验证码</span>
							<span id="AjaxHolder_PostComment_lblImage" style="color:Red;font-weight:bold;"></span>
						</td>
		</tr>
		<tr>
			<td width="78">验证码</td>
			<td><input name="AjaxHolder$PostComment$CodeNumberTextBox" type="text" id="AjaxHolder_PostComment_CodeNumberTextBox" />*&nbsp;&nbsp;<img src="http://www.blogjava.net/Modules/CaptchaImage/JpegImage.aspx?cacheid=20130412120403"/></td>
			<td align="left"></td>
		</tr>
	</table>
	
			</td>
		</tr>
		<TR>
			<TD colSpan="3">内容(请不要发表任何与政治相关的内容)
				<span id="AjaxHolder_PostComment_RequiredFieldValidator3" style="color:Red;visibility:hidden;">请输入评论内容</span><BR>
				<textarea name="AjaxHolder$PostComment$tbComment" rows="10" cols="50" id="AjaxHolder_PostComment_tbComment" class="commentTextBox" onkeydown="ctlent(event,'AjaxHolder_PostComment_tbComment')" style="Width:480;Height:220"></textarea></TD>
		</TR>
		<TR>
			<TD colSpan="3">
		<span id="AjaxHolder_PostComment_Message" style="color:Red;"></span>
		</td>
		<TR>
			<TD colSpan="3"><input id="AjaxHolder_PostComment_chkRemember" type="checkbox" name="AjaxHolder$PostComment$chkRemember" checked="checked" tabindex="-1" /><label for="AjaxHolder_PostComment_chkRemember">Remember Me?</label></TD>
		</TR>
		<TR>
			<TD height="23"><input type="submit" name="AjaxHolder$PostComment$btnSubmit" value="提交" onclick="TempSave('AjaxHolder_PostComment_tbComment');WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;AjaxHolder$PostComment$btnSubmit&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="AjaxHolder_PostComment_btnSubmit" class="commentButton" />
				</TD>
			<td colSpan="2" height="23">&nbsp;
				<a id="AjaxHolder_PostComment_lnkLogin" href="http://www.blogjava.net/login.aspx?ReturnURL=http://www.blogjava.net/stevenjohn/archive/2012/07/07/382447.html&amp;SourceURL=/stevenjohn/archive/2012/07/07/382447.html">登录</a>&nbsp;&nbsp;<!--<a id="AjaxHolder_PostComment_linkLoginComment" OnClick="if(document.getElementById('AjaxHolder_PostComment_tbComment').value != '') return confirm('未提交的评论内容将会丢失, 你真的要进入高级评论吗?');" href="http://www.blogjava.net/stevenjohn/archive/2012/07/07/382447.html?login=1#Post">使用高级评论</a>&nbsp;&nbsp;<a href="http://www.blogjava.net/RequireRegister.aspx">新用户注册</a>&nbsp;&nbsp;<A href="#Top">返回页首</A>&nbsp;&nbsp;<a id="AjaxHolder_PostComment_lbRestore" OnClick="Restore('AjaxHolder_PostComment_tbComment'); return false;" href="/stevenjohn/archive/2012/07/07/382447.html#Post">恢复上次提交</a>&nbsp;&nbsp;-->&nbsp;&nbsp;&nbsp;&nbsp;
				</td>
		</TR>
		<TR>
			<TD colSpan="3"><label class="CtrlEnter">[使用Ctrl+Enter键可以直接提交]</label></TD>
		</TR>
		</div>
		
		<TR>
			<TD colSpan="3"><!----></TD>
		</TR>
		<!--
		<TR>
			<TD colSpan="3" height="5"></TD>
		</TR>	
		-->	
		<TR>
		<TD colSpan="3">
		
<script type='text/javascript'>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
(function() {
var gads = document.createElement('script');
gads.async = true;
gads.type = 'text/javascript';
var useSSL = 'https:' == document.location.protocol;
gads.src = (useSSL ? 'https:' : 'http:') + 
'//www.googletagservices.com/tag/js/gpt.js';
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(gads, node);
})();
</script>

<script type='text/javascript'>
googletag.cmd.push(function() {
googletag.defineSlot('/1090369/blogjava_blogpost_bottom', [300, 250], 'div-gpt-ad-1364133350381-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
<!-- blogjava_blogpost_bottom -->
<div id='div-gpt-ad-1364133350381-0' style='width:300px; height:250px;'>
<script type='text/javascript'>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1364133350381-0'); });
</script>
</div>
<br/>

		</TD>
		</TR>
		<tr>			
		<td colspan="3">
		
		</td>
		</tr>
		<TR>
		<TD colSpan="3"></TD>
		</TR>
		<TR>
			<TD colSpan="3" height="1">网站导航:<div id="blogsite">
			<a href="http://www.cnblogs.com" title="程序员的网上家园">博客园</a>&nbsp;&nbsp;
			<a href="http://news.cnblogs.com">IT新闻</a>&nbsp;&nbsp;
			<a href="http://kb.cnblogs.com">知识库</a>&nbsp;&nbsp;
			<a href="http://www.cppblog.com">C++博客</a>&nbsp;&nbsp;
			<a href="http://job.cnblogs.com">程序员招聘</a>&nbsp;&nbsp;
			<a href="/stevenjohn/archive/2012/07/07/382447.html?opt=admin">管理</a>
			</div>
		</TD>
		</TR>
		<TR>
			<TD colSpan="3" height="5">
<div id="divRelativePosts">
相关文章:
	
			<ul style="margin-top:0px;padding-left:0px;">
		
			<li style='list-style:none;'>
				<a id="AjaxHolder_PostComment_ctl07_RelativePostsList_ctl01_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/08/30/386625.html">js中控制checkbox的选择以及table的显示与隐藏</a>
			</li>
		
			<li style='list-style:none;'>
				<a id="AjaxHolder_PostComment_ctl07_RelativePostsList_ctl02_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/08/30/386616.html">js获取复选框的值，及小技巧</a>
			</li>
		
			<li style='list-style:none;'>
				<a id="AjaxHolder_PostComment_ctl07_RelativePostsList_ctl03_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/08/28/386474.html">javascript实现表格动态增加删除(二)</a>
			</li>
		
			<li style='list-style:none;'>
				<a id="AjaxHolder_PostComment_ctl07_RelativePostsList_ctl04_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/08/28/386472.html">javascript实现表格动态增加</a>
			</li>
		
			<li style='list-style:none;'>
				<a id="AjaxHolder_PostComment_ctl07_RelativePostsList_ctl05_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/08/28/386471.html">javascript实现表格动态增加删除(一)</a>
			</li>
		
			<li style='list-style:none;'>
				<a id="AjaxHolder_PostComment_ctl07_RelativePostsList_ctl06_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/08/28/386459.html">js动态创建，删除表格 </a>
			</li>
		
			<li style='list-style:none;display:none'>
				<a id="AjaxHolder_PostComment_ctl07_RelativePostsList_ctl07_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/07/07/382447.html">dwr3实现消息精确推送详细步骤 </a>
			</li>
		
			<li style='list-style:none;'>
				<a id="AjaxHolder_PostComment_ctl07_RelativePostsList_ctl08_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/07/07/382435.html">js实现checkbox全选，反选，全不选</a>
			</li>
		
			<li style='list-style:none;'>
				<a id="AjaxHolder_PostComment_ctl07_RelativePostsList_ctl09_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/07/07/382434.html">提交checkbox的值到servlet</a>
			</li>
		
			<li style='list-style:none;'>
				<a id="AjaxHolder_PostComment_ctl07_RelativePostsList_ctl10_Hyperlink1" href="http://www.blogjava.net/stevenjohn/archive/2012/07/07/382433.html">checkbox实现全选的多种方法</a>
			</li>
		
			</ul>
		
</div>
</TD>
		</TR>	
		<TR>
			<TD colSpan="3">&nbsp;</TD>
		</TR>
		<TR>
			<TD colSpan="3" height="5"></TD>
		</TR>
		<TR>
			<TD colSpan="3">
				</TD>
		</TR>		
	</TABLE>	
</div>
<div id="AjaxHolder_PostComment_ValidationSummary1" style="color:Red;display:none;">

	</div>

</div>

				
</tr>
</table>

<p id="footer">
	Copyright @
	abin<BR>
	Powered by:
	<a href="http://scottwater.com/blog" target=_blank>.Text</a> and 
	<a href="http://asp.net" target=_blank>ASP.NET</a>
	<br>
	Theme by: <a href="http://www.DotNetMonster.com" target=_blank>.NET Monster</a>
</p>


    
<script type="text/javascript">
//<![CDATA[
var Page_ValidationSummaries =  new Array(document.getElementById("AjaxHolder_PostComment_ValidationSummary1"));
var Page_Validators =  new Array(document.getElementById("AjaxHolder_PostComment_RequiredFieldValidator1"), document.getElementById("AjaxHolder_PostComment_RequiredFieldValidator2"), document.getElementById("AjaxHolder_PostComment_Requiredfieldvalidator4"), document.getElementById("AjaxHolder_PostComment_RequiredFieldValidator3"));
//]]>
</script>

<script type="text/javascript">
//<![CDATA[
var AjaxHolder_PostComment_RequiredFieldValidator1 = document.all ? document.all["AjaxHolder_PostComment_RequiredFieldValidator1"] : document.getElementById("AjaxHolder_PostComment_RequiredFieldValidator1");
AjaxHolder_PostComment_RequiredFieldValidator1.controltovalidate = "AjaxHolder_PostComment_tbTitle";
AjaxHolder_PostComment_RequiredFieldValidator1.errormessage = "请输入标题";
AjaxHolder_PostComment_RequiredFieldValidator1.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
AjaxHolder_PostComment_RequiredFieldValidator1.initialvalue = "";
var AjaxHolder_PostComment_RequiredFieldValidator2 = document.all ? document.all["AjaxHolder_PostComment_RequiredFieldValidator2"] : document.getElementById("AjaxHolder_PostComment_RequiredFieldValidator2");
AjaxHolder_PostComment_RequiredFieldValidator2.controltovalidate = "AjaxHolder_PostComment_tbName";
AjaxHolder_PostComment_RequiredFieldValidator2.errormessage = "请输入你的姓名";
AjaxHolder_PostComment_RequiredFieldValidator2.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
AjaxHolder_PostComment_RequiredFieldValidator2.initialvalue = "";
var AjaxHolder_PostComment_Requiredfieldvalidator4 = document.all ? document.all["AjaxHolder_PostComment_Requiredfieldvalidator4"] : document.getElementById("AjaxHolder_PostComment_Requiredfieldvalidator4");
AjaxHolder_PostComment_Requiredfieldvalidator4.controltovalidate = "AjaxHolder_PostComment_CodeNumberTextBox";
AjaxHolder_PostComment_Requiredfieldvalidator4.errormessage = "请输入验证码";
AjaxHolder_PostComment_Requiredfieldvalidator4.display = "Dynamic";
AjaxHolder_PostComment_Requiredfieldvalidator4.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
AjaxHolder_PostComment_Requiredfieldvalidator4.initialvalue = "";
var AjaxHolder_PostComment_RequiredFieldValidator3 = document.all ? document.all["AjaxHolder_PostComment_RequiredFieldValidator3"] : document.getElementById("AjaxHolder_PostComment_RequiredFieldValidator3");
AjaxHolder_PostComment_RequiredFieldValidator3.controltovalidate = "AjaxHolder_PostComment_tbComment";
AjaxHolder_PostComment_RequiredFieldValidator3.errormessage = "请输入评论内容";
AjaxHolder_PostComment_RequiredFieldValidator3.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
AjaxHolder_PostComment_RequiredFieldValidator3.initialvalue = "";
var AjaxHolder_PostComment_ValidationSummary1 = document.all ? document.all["AjaxHolder_PostComment_ValidationSummary1"] : document.getElementById("AjaxHolder_PostComment_ValidationSummary1");
AjaxHolder_PostComment_ValidationSummary1.showmessagebox = "True";
AjaxHolder_PostComment_ValidationSummary1.showsummary = "False";
//]]>
</script>


<script type="text/javascript">
//<![CDATA[

var Page_ValidationActive = false;
if (typeof(ValidatorOnLoad) == "function") {
    ValidatorOnLoad();
}

function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    else {
        return true;
    }
}
        
document.getElementById('AjaxHolder_PostComment_ValidationSummary1').dispose = function() {
    Array.remove(Page_ValidationSummaries, document.getElementById('AjaxHolder_PostComment_ValidationSummary1'));
}
Sys.Application.initialize();

document.getElementById('AjaxHolder_PostComment_RequiredFieldValidator1').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('AjaxHolder_PostComment_RequiredFieldValidator1'));
}

document.getElementById('AjaxHolder_PostComment_RequiredFieldValidator2').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('AjaxHolder_PostComment_RequiredFieldValidator2'));
}

document.getElementById('AjaxHolder_PostComment_Requiredfieldvalidator4').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('AjaxHolder_PostComment_Requiredfieldvalidator4'));
}

document.getElementById('AjaxHolder_PostComment_RequiredFieldValidator3').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('AjaxHolder_PostComment_RequiredFieldValidator3'));
}
//]]>
</script>
</form>
    <script type="text/javascript" src="/script/ShowHidden.js"></script>
	<script type="text/javascript">
	  var _gaq = _gaq || [];
	  _gaq.push(['_setAccount', 'UA-476124-3']);
	  _gaq.push(['_trackPageview']);

	  (function() {
		var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
		ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
		var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
	  })();
	</script>
</body>
</html>
